#include<stdio.h>
#include<string.h>
#include<stdlib.h>
//option结构体
typedef struct option{
    char op;  //当前选项的字母代号
    struct option *next; //下一个选项
} OPTION;

//Word结构体
typedef struct word{
    char letter; //字符
    struct word *next;
} Word;

//ARGU参数结构体
typedef struct argu{
    Word argu;
    struct argu *next;
} ARGU;

//REDIRECT重定向结构体
typedef struct redirect{
    int type; //指定重定向的类型
    Word redirectee; //重定向的目标
    struct redirect *next; //下一个重定向
} REDIRECT;

//command结构体
typedef struct command{
    char name[10];  //指令名称
    OPTION op;      //选项
    ARGU argu;      //变量链
    int asynchronous;   //是否为异步执行‘&’
    REDIRECT redirect; //重定向操作
    int pipe;       //是否为管道操作
    struct command *nextpipe; //下一个管道操作
} COMMAND;
/*
//TOKEN标记结构体
typedef struct token{
    int type;   //token的类型
    Word name;  //token的名称
    struct token *next; //下一个token
} TOKEN;
*/

//WORD结构体
typedef struct WORD{
    Word word;
    struct WORD *next;
} WORD;
